package com.jl.book.base

import android.app.Application
import android.content.Context
import com.jl.book.BuildConfig
import com.kongzue.dialog.interfaces.DialogLifeCycleListener
import com.kongzue.dialog.util.DialogSettings
import com.kongzue.dialog.v3.Notification
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
import kotlin.properties.Delegates

/**
 * @author jl
 */
class AppApplication : Application() {

    companion object {
        var context: Context by Delegates.notNull()
    }

    override fun onCreate() {
        super.onCreate()
        context = applicationContext

        startKoin {
            androidContext(this@AppApplication)
        }
        DialogSettings.modalDialog = false                 //是否开启模态窗口模式，一次显示多个对话框将以队列形式一个一个显示，默认关闭
        DialogSettings.style =
            DialogSettings.STYLE.STYLE_KONGZUE        //全局主题风格，提供三种可选风格，STYLE_MATERIAL, STYLE_KONGZUE, STYLE_IOS
        DialogSettings.theme = DialogSettings.THEME.LIGHT          //全局对话框明暗风格，提供两种可选主题，LIGHT, DARK
        DialogSettings.tipTheme = DialogSettings.THEME.LIGHT       //全局提示框明暗风格，提供两种可选主题，LIGHT, DARK
        DialogSettings.cancelable =
            true                  //全局对话框默认是否可以点击外围遮罩区域或返回键关闭，此开关不影响提示框（TipDialog）以及等待框（TipDialog）
        DialogSettings.cancelableTipDialog = false         //全局提示框及等待框（WaitDialog、TipDialog）默认是否可以关闭
        DialogSettings.DEBUGMODE = BuildConfig.DEBUG                   //是否允许打印日志
        DialogSettings.autoShowInputKeyboard = true       //设置 InputDialog 是否自动弹出输入法
        Notification.mode =
            Notification.Mode.FLOATING_WINDOW;  //通知实现方式。可选 TOAST 使用自定义吐司实现以及 FLOATING_WINDOW 悬浮窗实现方式

        //检查 Renderscript 兼容性，若设备不支持，DialogSettings.isUseBlur 会自动关闭；
        DialogSettings.checkRenderscriptSupport(context)

        DialogSettings.init()
    }
}